<?php

// php操作数据库三种方法
// 1.php+mysql
//header('Content-type:text/html;charset=utf-8');
////连接数据库
//($link = @mysql_connect('127.0.0.1','root','',3306)) || die('连接失败');
////设置字符集
//mysql_query("SET NAMES UTF8");
//(mysql_select_db("data")) || die("连接数据库失败");
////执行有结果集的操作
//$res = mysql_query("SELECT * FROM products");
//$row = mysql_fetch_row($res);
//$row = mysql_fetch_assoc($res);
//$row = mysql_fetch_array($res,MYSQL_BOTH);
//var_dump($row);
//$arr = array();
//while ($row = mysql_fetch_assoc($res)) {
//    $arr[] = $row;
//}
//var_dump($arr);
////执行没有结果集的操作
//// $res = mysql_query("INSERT INTO wd_admin(admin_name,admin_pwd) values ('sdfsdf','2434343');");
//// $res = mysql_query("UPDATE wd_admin SET admin_name='zhangsan' WHERE admin_id = 44;");
////$res = mysql_query("DELETE FROM wd_admin WHERE admin_id = 44;");
//// $id = mysql_insert_id();
//// var_dump($id);
//$affected = mysql_affected_rows();
//var_dump($affected);
////释放结果集
//mysql_free_result($res);
////关闭连接
//mysql_close();


//2.php+mysqli
header('Content-type:text/html;charset=utf-8');
// 连接数据库
//$Link = @new mysqli("localhost","root","root","data");
//// 如果连接失败
//if($Link->connect_errno){
//    // 停止运行,抛出异常
//    throw new Exception($Link->connect_errno);die;
//}
//$Link->query("SET NAMES UTF8");
//// 执行结果集
//$res = $Link->query("SELECT * FROM products");
////var_dump($res);
//$row = $res->fetch_assoc();
////var_dump($row);
//$rows = array();
//while ($row = $res->fetch_assoc()){
//    $rows[] = $row;
//}
//var_dump($rows);
//执行没有结果集的
// $res = $link->query("INSERT INTO wd_admin(admin_name,admin_pwd) VALUES ('admin111','23324324');");
// $id = $link->insert_id;
// if($id){
//  echo 'ok';
// }else{
//  echo 'no ok';
// }
// $res = $link->query("UPDATE wd_admin SET admin_name = 'dsfsd' WHERE admin_id = 41;");
// $rows = $link->affected_rows;
// var_dump($rows);
//释放结果集
//$res->free();
////关闭连接
//$Link->close();

//mysqli 预准备处理
//进行连接
//$link = @new Mysqli("localhost", "root", "root", "data");
//// var_dump($link);
//// 如果链接失败
//if($link->connect_errno){
//    // 就die掉他
//    echo $link->connect_error;die;
//}
//// 设置编码
//$link->query("SET NAMES UTF8");
//// 发送预处理，创建预准备对象
//$stmt = $link->prepare("INSERT INTO stu(sex,name) VALUES (?,?)");
//// 判断是否成功
//if(!$stmt){
//    echo $stmt->errno;die;
//}
//// 绑定参数
//$stmt->bind_param("is",$sex,$name);
//$arr = array(
//    'sex' => 1,
//    'name'=>"周润发"
//);
//// 拆分数组
//extract($arr);
////预准备执行，执行数据库操作，执行保证绑定参数有值
//if($stmt->execute()){
//    echo "受影响的条数：" . $stmt->affected_rows . '<br />';
//    echo "主键id：" . $stmt->insert_id . '<br />';
//}else{
//    echo "错误代码是：" . $stmt->errno . "<br />";
//    echo "错误是：" . $stmt->error . "<br />";
//
//}

//3.php+pdo

function p($arr){
    echo '<pre>';
    print_r($arr);
    echo '</pre>';
}
//pdo 处理mysql
//设置连接信息
//$dsn = "mysql:host=localhost;dbname=data";
//$user = "root";
//$password = "root";
//try {
//    //实例化连接
//    $pdo = new Pdo($dsn,$user,$password);
//    $pdo->query("SET NAMES UTF8");//发送编码
//    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//定义错误类型
//    $result = $pdo->query("SELECT * FROM stu");//执行查询
//    $rows = $result->fetchAll(PDO::FETCH_ASSOC);//取出多条，关联索引数组PDO::FETCH_ASSOC,取出关联数组
//    // $rows = $result->fetch();//取出一条，关联索引数组
//} catch (PDOException $e) {
//    //如果有错会被此地方接到，然后终止
//    echo $e->getMessage();die;
//}
//p($rows);

//pdo 处理mysql-没有结果集的
//$dsn = "mysql:host=localhost;dbname=data";
//$user = "root";
//$password = "root";
//try {
//    //实例化连接
//    $pdo = new Pdo($dsn,$user,$password);
//    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//定义错误类型
//    $pdo->query("SET NAMES UTF8");//发送编码
//    $sql = "DELETE FROM stu WHERE id > 5";
//    $affected_num = $pdo->exec($sql);//执行没有结果集用exec
//    echo "共删除" . $affected_num . "条";
//} catch (PDOException $e) {
//    //如果有错会被此地方接到，然后终止
//    echo $e->getMessage();die;
//}


// phpinfo();
//设置连接信息
//$dsn = "mysql:host=localhost;dbname=data";
//$user = "root";
//$password = "root";
//try {
//    //实例化连接
//    $pdo = new Pdo($dsn,$user,$password);
//    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//定义错误类型
//    $pdo->query("SET NAMES UTF8");//发送编码
//    $sql = "SELECT * FROM stu";
//    $result = $pdo->query($sql);//执行有结果集用query
//    $rows = $result->fetchAll(PDO::FETCH_ASSOC);
//} catch (PDOException $e) {
//    //如果有错会被此地方接到，然后终止
//    echo $e->getMessage();die;
//}
//p($rows);

//pdo 预准备处理
$dsn = "mysql:host=localhost;dbname=data";
$user = "root";
$password = "root";
//try {
//    //实例化连接
//    $pdo = new Pdo($dsn,$user,$password);
//    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//定义错误类型
//    $pdo->query("SET NAMES UTF8");//发送编码
//    $sql = "SELECT * FROM stu WHERE name=? AND age=?";
//    $stmt = $pdo->prepare($sql);//准备
//    //给变量赋值，为了绑定参数
//    $name = "2号";
//    $age = 22;
//    //参数绑定
//    $stmt->bindParam(1, $name, PDO::PARAM_STR);
//    $stmt->bindParam(2, $age, PDO::PARAM_INT);
//    //执行
//    $stmt->execute();
//    //返回结果集
//    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
//} catch (PDOException $e) {
//    //如果有错会被此地方接到，然后终止
//    echo $e->getMessage();die;
//}
//p($rows);

try {
    //实例化连接
    $pdo = new Pdo($dsn,$user,$password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//定义错误类型
    $pdo->query("SET NAMES UTF8");//发送编码
    $sql = "DELETE FROM stu WHERE id > ?";
    $stmt = $pdo->prepare($sql);//准备
    //给变量赋值，为了绑定参数
    $id = 1;
    //参数绑定
    $stmt->bindParam(1, $id, PDO::PARAM_INT);
    //执行
    if($stmt->execute()){
        echo 'success';
    }
} catch (PDOException $e) {
    //如果有错会被此地方接到，然后终止
    echo $e->getMessage();die;
}
